Systems and methods for dynamic data processing and graphical user interface processing

ABSTRACT

Systems and methods for dynamic data processing and graphical user interface generation are provided. A system may include a network interface configured to request and receive, via a computer network from one or more sources in remote locations, electronic record data associated with an individual; an input filter configured to identify structured and unstructured information in the electronic record data; a data selector configured to analyze the structured and unstructured information; a timeline generator configured to generate, based on the analysis, interface information for displaying an interactive graphical user interface configured to present an event timeline of events in the electronic record data; and a display configured to provide the interactive graphical user interface based on the generated interface information.

TECHNICAL FIELD

Disclosed embodiments are directed to data processing, such aspresentation of data from aggregated electronic files including textualdocuments, images, and videos, and processing and generation ofgraphical user interfaces based on the aggregated electronic files. Someembodiments are directed to generation of graphical user interfaces fromdiverse media types of data that are gathered, associated, created,indexed, formatted, and otherwise analyzed to determine relationshipsbetween elements in the data to generate a single index and associatedgraphical user interface.

BACKGROUND

An ever increasing amount of data and data sources are now available toresearchers, analysts, organizational entities, and others. This influxof information allows for sophisticated analysis to solve problems anddraw conclusions, but in some areas, the availability of conclusionsfrom this data is lacking due to inadequate data processing methods andineffective graphical user interfaces.

Often, raw data files are unstructured, and large data sets can containdata points falling into one or multiple known categories. Furthermore,raw data files usually contain information in various, non-uniformformats, such as different forms or documents with handwritten notes.Thus, large amounts of complex data received from various sources cannotbe analyzed uniformly for presentation in a graphical user interface.

Moreover, in many cases, data points in the raw data files do notprovide clear indication regarding an appropriate categorization orrelationship to data points in other files.

Moreover, effective ways to expand the number of categorized data pointscan be time consuming and require large amounts of manual intervention.

Without effective data drive methods to drive the data file analysis andgraphical user interface generation, users of the data sets cannot draweffective conclusions about the data as a whole.

SUMMARY

Disclosed embodiments relate to computerized systems and methods fordynamic data analysis, indexing, and timeline generation.

In one embodiment, a system for dynamic data processing and graphicaluser interface generation is provided. The system may include a networkinterface configured to request and receive, via a computer network fromone or more sources in remote locations, electronic record dataassociated with an individual; an input filter configured to identifystructured and unstructured information in the electronic record data; adata selector configured to analyze the structured and unstructuredinformation; a timeline generator configured to generate, based on theanalysis, interface information for displaying an interactive graphicaluser interface configured to present an event timeline of events in theelectronic record data; and a display configured to provide theinteractive graphical user interface based on the generated interfaceinformation.

In another embodiment, a computer-implemented method for dynamic dataprocessing and graphical user interface generation is provided. Themethod may include: requesting and receiving, via a computer networkfrom one or more sources in remote locations, electronic record dataassociated with an individual; identifying, by at least one processor ofa computing system using an input filter, structured and unstructuredinformation in the electronic record data; analyzing, by the at leastone processor using a data selector, the structured and unstructuredinformation; generating, based on the analysis and using a timelinegenerator, interface information for displaying an interactive graphicaluser interface configured to present an event timeline of events in theelectronic record data; and providing for display the interactivegraphical user interface based on the generated interface information.

Consistent with other disclosed embodiments, non-transitory computerreadable storage media may store program instructions, which areexecuted by at least one processor device and perform any of the methodsdescribed herein.

The foregoing general description and the following detailed descriptionare exemplary and explanatory only and are not restrictive of theclaims.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate several embodiments and, togetherwith the description, serve to explain the disclosed principles. In thedrawings:

FIG. 1 is a block diagram of an exemplary computing device, consistentwith embodiments of the present disclosure.

FIG. 2 is a block diagram representing an exemplary system forprocessing data, consistent with embodiments of the present disclosure.

FIG. 3 is a flowchart of an exemplary method for processing data ofrecords, consistent with embodiments of the present disclosure.

FIG. 4a is a flowchart of an exemplary method for processing data ofrecords, consistent with embodiments of the present disclosure.

FIG. 4b is a flowchart of an exemplary method for analyzing data ofrecords, consistent with embodiments of the present disclosure.

FIG. 5 is a flowchart of an exemplary method of generating an output,consistent with embodiments of the present disclosure.

FIG. 6 is a first example of a user interface consistent withembodiments of the present disclosure.

FIG. 7 is a second example of a user interface consistent withembodiments of the present disclosure.

FIG. 8 is a third example of a user interface consistent withembodiments of the present disclosure.

FIG. 9 is a fourth example of a user interface consistent withembodiments of the present disclosure.

FIGS. 10a-10c illustrate a fifth example of user interfaces consistentwith embodiments of the present disclosure.

DETAILED DESCRIPTION

Disclosed embodiments are directed to systems and methods for analyzingdata files received from a multitude of sources, generating an index ofthe received files, and generating a dynamic and customized graphicaluser interface based on the data files and analysis. In someembodiments, the disclosed embodiments can improve data analysis andpresentation for medical professionals to make effective diagnoses.Misdiagnoses of medical conditions, illnesses, or injuries are commonoccurrences that often result in complications, excessive medicalexpenses, and morbidity. The misdiagnoses may be the result of simplehuman error or a lack of necessary information. Proper medical diagnosesgenerally require a large quantity of medical data to provide acomprehensive picture of the patient's health. Thus, physicians requireup-to-date and complete medical histories, but the required informationmay be physically dispersed and/or not accessible when needed.Traditional medical record systems are difficult to manage anddistribute due to privacy regulations and a lack of communicationbetween facilities.

For example, a patient may have been treated by a primary physician, anumber of specialists, and a physical therapist for a condition, but adiagnosing physician may not have access to all of the information fromthe previous treatments. One of the specialists may have taken an X-rayimage that provides vital information, but the current process oftransferring the X-ray image to other facilities is cumbersome becauseof the sensitivity of the information. Even if the X-ray image is sentto the diagnosing physician, it may be only available in a hardcopywhich may become lost among volumes of medical records.

Moreover, traditional medical records are often disorganized anddifficult to review quickly and efficiently. For example, a middle-agedpatient may have records from more than a dozen doctors, and each recordmay have different formatting and types of content. Thus, physicians areoften unable to obtain a full understanding of a patient's healthcondition quickly and efficiently.

The disclosed system is directed to overcoming or mitigating one or moreof the problems set forth above and/or other problems in the art.

Reference will now be made in detail to the exemplary embodimentsimplemented according to the present disclosure, the examples of whichare illustrated in the accompanying drawings. Wherever possible, thesame reference numbers will be used throughout the drawings to refer tothe same or like parts.

The embodiments described herein provide systems and methods forgathering information from a variety of sources, extracting data fromthe information, and prioritizing the data into indexes and timelines.The index and timelines may ensure access of prioritized data todecision-makers and/or experts providing second opinions. Someembodiments of the technology may be applied to records of the medicalfield and may improve the availability of expert medical opinions.However, the embodiments described herein may be applied to many otherfields. Descriptions and applications related to specific domains do notpreclude the application of the described embodiments to othertechnologies of fields.

FIG. 1 is a block diagram of a computing system 100. In someembodiments, system 100 may be a server providing the functionalitydescribed herein. Further, system 100 may be a second device providingthe functionality described herein or receiving information from aserver to provide at least some of that information for display.

System 100 may include one or more central processing units (CPUs, orprocessors) 120 and system memory 121. System 100 may also include oneor more graphics processing units (GPUs) 125 and graphic memory 126.CPUs 120 may be single or multiple microprocessors, field-programmablegate arrays, or digital signal processors capable of execution sets ofinstructions stored in a memory (e.g., system memory 121), a cache, or aregister. CPUs 120 may contain one or more registers for storingvariable types of data including, inter alia, data, instructions,floating point values, conditional values, memory addresses forlocations in memory (e.g., system memory 121 or graphic memory 126),pointers, and counters. CPU registers may include special purposeregisters used to store data associated with executing instructions suchas an instruction pointer, instruction counter, and/or memory stackpointer. System memory 121 may include a tangible and/or non-transitorycomputer-readable medium, such as a flexible disk, a hard disk, acompact disk read-only memory (CD-ROM), magneto-optical (MO) drive,digital versatile disk random-access memory (DVD-RAM), a solid-statedisk (SSD), a flash drive and/or flash memory, processor cache, memoryregister, or a semiconductor memory. System memory 121 may be one ormore memory chips capable of storing data and allowing direct access byCPUs 120. System memory 121 may be any type of random access memory(RAM), or other available memory chip capable of operating as describedherein.

CPUs 120 may communicate with system memory 121 via a system interface150, sometimes referred to as a bus. GPUs 125 may be any type ofspecialized circuitry that may manipulate and alter memory (e.g.,graphic memory 126) to provide and/or accelerate the creation of images.GPUs 125 may store images in a frame buffer for output to a displaydevice such as display device 124. GPUs 125 may have a highly parallelstructure optimized for processing large, parallel blocks of graphicaldata more efficiently than general purpose CPUs 120. Furthermore, thefunctionality of GPUs 125 may be included in a chipset of a specialpurpose processing unit or a co-processor.

CPUs 120 may execute programming instructions stored in system memory121 or other memory, operate on data stored in memory (e.g., systemmemory 121) and communicate with GPUs 125 through the system interface150, which bridges communication between the various components ofsystem 100. In some embodiments, CPUs 120, GPUs 125, system interface150, or any combination thereof, are integrated into a single chipset orprocessing unit. GPUs 125 may execute sets of instructions stored inmemory (e.g., system memory 121), to manipulate graphical data stored insystem memory 121 or graphic memory 126. For example, CPUs 120 mayprovide instructions to GPUs 125, and GPUs 125 may process theinstructions to render graphics data stored in the graphic memory 126.Graphic memory 126 may be any memory space accessible by GPUs 125,including local memory, system memory, on-chip memories, and hard disk.GPUs 125 may enable displaying of graphical data stored in graphicmemory 126 on display device 124.

System 100 may include display device 124 and input/output (I/O) devices130 (e.g., a keyboard, a mouse, or a pointing device) connected to I/Ocontroller 123. I/O controller 123 may communicate with the othercomponents of system 100 via system interface 150. It is appreciatedthat CPUs 120 may also communicate with system memory 121 and otherdevices in manners other than through system interface 150, such asthrough serial communication or direct point-to-point communicationSimilarly, GPUs 125 may communicate with graphic memory 126 and otherdevices in ways other than system interface 150. In addition toreceiving input, CPUs 120 may provide output via I/O devices 130 (e.g.,through a printer, speakers, or other output devices).

Furthermore, system 100 may include a network interface 118 to interfaceto a network 160 through a variety of connections including, but notlimited to, standard telephone lines, LAN or WAN links (e.g., 802.11,T1, T3, 56 kb, X.25), broadband connections (e.g., ISDN, Frame Relay,ATM), wireless connections, or some combination of any or all of theabove. Network interface 118 may comprise a built-in network adapter,network interface card, PCMCIA network card, card bus network adapter,wireless network adapter, USB network adapter, modem or any other devicesuitable for interfacing system 100 to any type of network 160 capableof communication and performing the operations described herein.

System 100 may also be configured to send and/or receive data to/fromone or more third party devices 170 through network 160. Computer system100 may be configured to send-only, receive-only, or send and receiveto/from third party device 170 depending on assigned permissions. Forexample, computer system 100 may only send data to a third party device170 with only read-only access to data of storage 128, and may onlyreceive data from a third party device 170 recognized as only a datasource. Computer system 100 may also be configured to send and receivedata from a third party device 170 permitted to read and update data ofstorage 128. Third party device 170 may be a personal computing devicesuch as, for example, a general purpose or notebook computer, a mobiledevice with computing ability, a tablet, smartphone, wearable devicesuch as Google Glass™ or smart watches, or any combination of thesecomputers and/or affiliated components. Third party device 170 may alsoinclude app(s), which when executed causes computer terminal 140 toperform processes related to sending and/or receiving to/from system100. Third party device 170 may be associated with patients, physicians,hospitals, and insurance companies.

FIG. 2 is a block diagram representing exemplary processes of system 100for processing data. System 100 may have a number of modules including,for example, an input filter 210, a database 215, a data selector 218,an index generator 220, and a timeline generator 225. System 100 mayimplement input filter 210, data selector 218, index generator 220, andtimeline generator 225 to receive data from a variety of sources andprocess the data by extracting aspects of the data. The data may then bestored, retrieved, and outputted, for example, in indexes and/ortimelines. The indexes and/or timelines may then be display on a displaydevice similar to display device 124 in FIG. 1. For example, system 100may request and accept records from data sources (e.g., data sources201-204), extract metadata from the received data (e.g., using inputfilter 210), store the data in database 215, select a subset of the data(e.g., using data selector 218) according to the nature of a request,and populate indexes and timelines to be displayed (e.g., using indexgenerator 220 and timeline generator 225). By gathering, analyzing, andstoring the data, the system 100 may allow for wider availability ofhealth care solutions.

The data may originate from a variety of sources and may be in a varietyof forms. In a healthcare context, the data may include any obtainablemedical record associated with an individual such as a patient. Forexample, system 100 may receive data from, inter alia, physiciandocuments 201, laboratory testing 202, ambulatory charts 203, and/orhospital records 204. Documents 201 may be received from physicians,such as doctors, nurses, hospital staff members, pharmacists,specialists, physical therapists, psychotherapists, dentists, and anyother individual that may generate, receive, and/or store healthrecords. Accordingly, the physicians may be associated withinstitutions, such as hospitals, private practices, urgent carefacilities, schools, nurseries, pharmacy, in-home practices, and/orassisted living facilities. Laboratory testing 202 may include anyrecords generated by medical laboratories, such as blood and tissuework. Ambulatory charts 203 may include charts and records generated onan outpatient basis. Hospital records 204 may include records from anyhospital department, such as prenatal, cardiology, emergency, radiology,oncology, surgery, and intensive care. For example, data sources 201-204may relate to and include information pertaining to medical events,physician orders, vaccinations, prescriptions, imaging, diagnoses,and/or symptoms. It is appreciated that the above mentioned sources areexemplary. Any source of information that may be accessed and mayprovide relevant data, may contribute to the corpus of data available tosystem 100. The data may be selectively requested and accepted based onrelevance to a patient or a condition of the patient, according toprivacy statutes and regulations.

Additionally, data sources 201-204 and the data provided by thosesources may be dynamic. Additional data sources may continually beadded, and data from those sources may be continually processed andupdated. As system 100 progresses, more data may be obtained andprocessed for later use. System 100 may continuously or intermittentlyrequest data pertaining to a patient. The request may be in the form ofcommunications, such as emails or push notifications to a physician viathird party device 170. The request may also be in the form of directlyaccessing other databases and retrieving data, via network interface118. System 100 may also receive data by data sources 201-204 directlyuploading the data on a website or file sharing server accessiblethrough network interface 118.

Because of the diversity of the data and data sources provided by datasources 201-204, input filter 210 may be used for extracting andorganizing data. Input filter 210 can be a module, which is a packagedfunctional hardware unit designed for use with other components (e.g.,portions of an integrated circuit) or a part of a program (stored on acomputer readable medium) that performs a particular function of relatedfunctions. In particular, input filter 210 processes the data providedby each data source 201-204 before storing the data in database 215.Processing may include, for example, recognizing the source and type ofdata, performing optical character recognition (OCR) to make datasearchable, extracting dates and/or keywords, generating metadata, andreorganizing the data as related to pre-determined categories orclassifications. Input filter 210 may use a variety of mechanisms toprocess the data depending on the format and nature of the data and/ordata source. After processing the data, input filter 210 may store theoriginal data and/or any processed data in database 215.

Database 215 may utilize one or more storage mechanisms based on anytangible and/or non-transitory storage or memory. This may include, butis not limited to, the types of system memory 121 and storage 128described in relation to FIG. 1. Further, database 215 may store thedata in a variety of formats. For example, data storage 415 may be anobject-relational database, a non-relational database, a full-textindexed data storage, and/or other database system.

Data selector 218 may be a module configured to receive a request andretrieve data from database 215 for use, for example, by timelinegenerator 220 and index generator 225, which may also be modules. Dataselector 218 may consider the requestor, the patient, the condition, andany relevant permissions (e.g., access control lists) to acquirerelevant data from database 215. For example, data selector 218 mayreceive a request based on a patient and a specific condition. Dataselector 218 may determine what permissions the requestor has to datapertaining to the patient, and retrieve relevant and permitted data tobe outputted to index generator 220 and/or timeline generator 225.

Index generator 220 and timeline generator 225 are modules that mayanalyze the data, determine the most effective organization of the databased on the request, and display the data to the requestor. Indexgenerator 220 and timeline generator 225 may be configured to organizeand display data based on permissions and requirements of the request.In some embodiments, index generator 220 and/or timeline generator 225may be configured to display metadata, tags, and extracted data from therecords to provide a synopsis of the records in a variety of differentmanners. For example, index generator 220 may display data from therecords and generate hyperlinks that may provide easy access to atimeline. In some embodiments, index generator 220 may receive portionsof medical records pertaining to a patient from a variety of differenthealthcare systems and arrange the pieces of records based on a specificcondition of the patient. Timeline generator 225 may display data fromthe records associated with health events in a chronological order inthe form of the timeline. In some embodiments, timeline generator 225may be configured to display a predetermined number of portions ofmedical records generated during a predetermined time period. Forexample, index generator 220 may generate a comprehensive set of medicalrecords pertaining to a patient, while timeline generator 225 maygenerate a subset of medical records pertaining to the patient duringone or more selected time periods, or a subset of all of the medicalrecord data corresponding to a particular condition or event. Indexgenerator 220 and timeline generator 225 may also provide referencesand/or direct access to the full version of the records, for example,through interactive hyperlinks in the portions of the timelineassociated with each health event.

FIG. 3 is a flowchart of an exemplary method 300 for evaluating datasources and populating a database, such as database 215 of FIG. 2. Itwill be readily appreciated that the illustrated procedure may bealtered to delete steps or further include additional steps. System(e.g., system 100 from FIG. 1) may request (step 310) data associated torelated events from a variety of data sources (e.g., data sources201-204). Data from data sources 201-204 may be in a variety of formsand related to one or more subjects being considered. In a healthcarecontext, the data may include personal medical records from, but notlimited to, hospitals, general physicians, pharmacists, physicaltherapists, psychotherapists, and dentists. For example, after a patientis registered in system 100, system 100 may obtain identities and/orlocations of healthcare systems in possession of the patient's recordsbased on the patient's claims provided by the employer, locationsprovided by the patient during the sign up process, names ofinstitutions contained in an existing record, or the like. In someembodiments, a triage collection process may also be performed, duringwhich a medical professional associated with system 100 determines theimportance of a medical record that is to be collected and whether aworkflow to collect additional information for the medical record is tobe initiated. The records may include any number of different types ofdocumentation. For example, the records may include written opinions,diagnoses, orders, prescriptions, and X-ray images.

After obtaining the records, system may convert (step 320) the file typeof the received records using a converter. For example, system 100 maybe configured to receive the documents as a first file type (e.g.,portable document format (pdf)) and convert the documents to a secondfile type (e.g., portable network graphics (png)). System 100 may mergerecords or divide pages of the records into different files. System 100may also be configured execute software to perform OCR, making thedocuments readable by system 100. System may be further configured tocompare received records and delete duplicate records. For example,system 100 may remove information that appears repeatedly such as thepatient's identification information (e.g., patient's name, gender, dateof birth) the patient's identification information from the receivedrecords in the file conversion process. Correspondingly, when a requestto view the medical records of a patient is received, system 100 mayautomatically filter and/or discard repeated content to avoid repeatedlydisplaying the patient identification information in each medical recordindex or health event timeline.

FIG. 4a is a flowchart of a method for processing data of records,consistent with embodiments of the present disclosure. As shown in FIG.4 a, in step 321, system 100 may convert documents from a first filetype (e.g., a .pdf file type) to a second file type (e.g., a .png filetype) using a converter.

In step 322, system 100 may extract non-renderable information from thedocuments and remove the non-renderable information in the convertedfile. For example, where an OCR operation is performed on a .pdf file,system 100 may remove the OCR information that is not representable inthe converted .png file. In some embodiments, the non-renderableinformation, such as the OCR information, may be included in themetadata generated by system 100.

In step 323, system 100 may extract healthcare related information inthe converted file. For example, system 100 may extract informationrelating to medical observation and/or diagnosis of the patient in thedocument and leave out the patient identification information that isexistent in system 100. In some embodiments, system 100 may extracthealthcare related information according to a predetermined format ofthe document, to extract structured information from the document. Forexample, system 100 may identify a region in the document that containsmedical observation and/or diagnosis information of the patientaccording to a predetermined format of the document, and extract therelevant healthcare information. In some embodiments, system 100 mayextract unstructured information, such as information that does notappear in a formatted field on the document, information that does nothave any label, and/or information that cannot be classified todetermine an information type or context. In some embodiments, system100 may automatically omit or delete duplicate information. As system100 can store multiple pieces of medical records for a patient, byremoving duplicate information and extracting relevant healthcareinformation contained in the records, the medical record index andhealth event timeline may be displayed in a manner that facilitates aviewer to identify important healthcare information.

After converting the file type, system 100 may analyze (step 330) thedata. For example, as depicted in FIG. 4 b, system 100 may extract avariety of types of information from the records. System 100 may extractpatient information 331, a source 332 of the records, a type 333 of therecords, a date stamp 334 of the records, permissions 335 of therecords, and/or any test results 336. The data 331-336 may be pulledfrom data fields associated with the records or may be pulled directlyfrom text or images according to OCR. For example, system 100 may beconfigured to recognize a single or combination of words to determinetest results. System 100 may also analyze images to detectabnormalities.

For patient information 331, system 100 may extract the patient'sbiographic information, such as first name, last name, date of birth,address, and social security information, and the patient's medicalrecord number (MRN) in a remote healthcare system. System 100 may alsobe configured to extract demographic information, such as race,ethnicity, occupation, religion, and health insurance. System 100 may befurther configured to extract physical characteristics, such height,weight, allergies, and previous known ailments.

For source 332, system 100 may be configured to identify whether therecords came from, for example, a primary physician, a specialist (e.g.,dermatologist, a neurologist, a cardiologist), a non-physician provider(e.g., a physical therapist, a registered nutritionist), or an ERdoctor. System may also be configured to identify the institution (e.g.,Kaiser, Sutter Health, UCSF, Governmental institution, etc.) from whichthe records came from. System 100 may be further configured to identifywho created the record, who edited the record, and/or who uploaded therecord onto system 100.

For type 333, system 100 may be configured to classify the record basedon a number of data types. In some embodiments, the data may beclassified an observation, a stress test, images (e.g. X-ray, an MRI), acholesterol test, a prescription, or blood work results. For example,the data may be classified as one of the following types of images:Computed Radiography, Computed Tomography, Magnetic Resonance, NuclearMedicine, Biomagnetic imaging, Color flow Doppler, Duplex Doppler,Diaphanography, Endoscopy, Laser surface scan, Positron emissiontomography (PET), Radiographic imaging (conventional film/screen),Single-photon emission computed tomography (SPECT), Thermography, X-RayAngiography, Radio Fluoroscopy, Radiotherapy Image, Radiotherapy Dose,Radiotherapy Structure Set, Radiotherapy Plan, RT Treatment Record, HardCopy, Digital Radiography, Mammography, Intra-oral Radiography,Panoramic X-Ray, General Microscopy, Slide Microscopy, External-cameraPhotography, Presentation State, Audio, Electrocardiography, CardiacElectrophysiology, Hemodynamic Waveform, SR Document, IntravascularUltrasound, Ophthalmic Photography, Stereometric Relationship, OpticalCoherence Tomography, Ophthalmic Refraction, Ophthalmic Visual Field,Ophthalmic Mapping, Key Object Selection, Segmentation, and other typesof imaging data.

For date stamp 334, system 100 may be configured to determine the datethe record was created, updated, recorded, and/or any other datespertaining to the record, such as previous consultations or futurescheduled appointments. Date stamp 344 may also include dates pertainingto any condition, such as how long pain has persisted according to thepatient and the projected recovery according to the physician.

For permissions (e.g., access control lists) 335, system 100 may beconfigured to recognize any previously assigned permissions to therecord. For example, a physician that created the medical record maygenerate metadata determinative of who is permitted to view and/or editthe record. For example, the records may be permitted access to one ormore of an expert providing a second opinion, the patient, immediatefriends and family of the patient, and/or an insurance adjuster. System100 may also be configured to generate permissions based on the type333, the source 332, or the results 336 of the records. For example,system 100 may be configured to allow family members to have access todate stamps 334 but not test results 336.

For test results 336, system 100 may be configured to determine resultsbased on text, image, and/or data field recognition. For example, theresults may be generated by system 100 scanning the records andrecognize descriptions, numbers, and/or units to extract numericalresults, such as cell counts or bone densities. System 100 may also beconfigured to extract results from data fields of recognized forms.System 100 may be further configured to recognize and extract results inthe form of medical imaging, such as X-rays, MRI, medicalultrasonography or ultrasound, endoscopy, electrocardiography (ECG), andany other types of imaging.

In some embodiments, system 100 may be configured to add additionalinformation to the records, such as triage information. For example, amedical specialist associated with system 100 may analyze the receivedrecords and provide a ranking of the records indicating the perceivedlevel of importance of the records based on the relevant patientcondition. Some records may be ranked as critical to the patient'scondition, while other records may be ranked as tangential to thepatient's condition. Triage information provided by the medicalspecialist may be added to the corresponding records by system 100. Indoing so, a medical professional using system 100 may retrieve recordsof highly importance for review in an emergency scenario that does notpermit a thorough examination of the patient's medical record.

After analyzing the data, system 100 may generate (step 340) metadata.For example, system 100 may alter the records obtained from data sources201-204 with the metadata relating to data 331-336, as illustrated inFIG. 4 b. The metadata may facilitate searching, classifying, andretrieving the records. The metadata may include structural metadata,detailing the organization of the data of the record. The metadata mayalso include administrative metadata, detailing the type, the source,and the date stamping. The metadata may be hierarchical, such thatrelationships are created between fields of data. For example, datarelated to a medical condition (e.g., a broken arm) may be categorizedand accessible through a query of the medical condition.

After generating the metadata, system 100 may receive (step 350) userinput. The user input may provide tags or metadata to the records. Thetags may be annotations saved in the records to provide additionalinformation, such as comments or highlights. The user input may alsoadd/subtract metadata or permissions for each of the records. Afterreceiving the user input, system 100 may save (step 360) the extracteddata and original records in database 215. The steps of method 300 maybe performed by one or more different individuals at different times.For example, the records or extracted data may be saved to database 215(step 360) following any step 310-350, and the records and/or extracteddata may be retrieved prior to a subsequent step 310-350. Steps 310-360may also be repeated by different individuals. For example, system 100may receive user input (step 350) from multiple different users. Steps310-360 may be performed in different orders.

FIG. 5 is a flowchart of an exemplary method 500 for retrieving data andgenerating an index and/or a timeline. It will be readily appreciatedthat the illustrated procedure may be altered to delete steps or includeadditional steps. A device (e.g., system 100 from FIG. 1) may receive arequest (step 510) based on desired information. The request may bereceived from third party 170 via network interface 118 through asecure, password protected terminal.

After receiving the request, system 100 may determine (step 520) thedetails of the request. For example, system 100 may be configured todetermine the requestor, the patient, and any specific conditions thatare being queried. The requestor may be determined by the passwordprotected login of the terminal.

After determining details of the request, system 100 may determine (step530) the permissions of the requestor. Based on the permissions, system100 may limit the amount or type of records that may be accessed by therequestor. This step may be performed through a look-up chart mappingthe requestors with any associated patients. The look-up chart may alsoprovide the records to which the requestor has permissions. For example,the medical record index and timelines may be displayed in differentlevels of details according to the permission of the requestor. Arecords collector, a doctor, and a family member of the patient may eachhave a different view of the timeline and medical record index based ontheir permissions.

After determining the permissions, system 100 may search (step 540)database 215 and retrieve data pertaining to the request. Device 200 maysearch database 215 based on metadata, extracted data, and/or tags.Device 200 may also access categories of data stored in database 215pertaining to the request.

System 100 may build and display (step 550) an index. System 100 maydynamically generate the index from the records based on the request,the requestor, permissions of the requestor, the patient, and thecondition. For example, an index generated for an expert configured toprovide a second opinion may be more inclusive than an index generatedfor a family member of the patient. System 100 may organize the indexbased on tags and metadata from the received records. The index mayinclude hyperlinks, allowing quick access to the records and/or atimeline.

System 100 may also build and display (step 560) the timeline asexemplified in FIG. 8. In some embodiments, system 100 may generateinterface information for displaying an interactive graphical userinterface that includes the timeline. The timeline may provide achronological listing of data extracted from the records. For example,the timeline may include medical events, procedures, and consultations.The timeline may also be dynamically generated from the records based onthe request, the requestor, permissions of the requestor, the patient,and the condition. The timeline may include hyperlinks, allowing quickaccess to the records.

FIG. 6 is a first example of a user interface 600 consistent withembodiments of the present disclosure. As depicted in FIG. 6, system 100may be configured to output a user interface 600 including a medicalrecords field 601. In the medical records field 601, system 100 maydisplay records acquired in step 310. System 100 may also tag data fromthe records and extract the data and/or generate metadata based on thetagging. For example, system 100 may extract the date of an ACL surgeryto be compiled into a timeline. System 100 may also extract additionalinformation about the surgery, such as the location, the attendingphysician, and the evaluation type. System 100 may further extract otherphysical information, such as known allergies and medical history. Theextraction may be automated by system 100 or may be performed manually.When performed manually, system 100 may receive manual input throughdata field 602 in order to compile the index and/or timeline. Data field602 may receive information pertaining to an event, such as an eventdate, an event name, an event description, a reference number (e.g.,page #), and an image URL to link the full record to the timeline. Afterentry of data into data field 602, the event may be added to thetimeline. System 100 may also provide a timeline preview 603 of datathat has been previously compiled in the timeline.

FIGS. 7-9 depict additional user interfaces 700-900 consistent withembodiments of the present disclosure. The user interfaces of FIGS. 7-9may provide a variety of different types of information to a variety ofdifferent audiences. For example, user interfaces 700-900 may beaccessible to experts, whom may interact with the user interfaces700-900 by providing user data (step 350). However, user interfaces700-900 may be customized based on the user and his/her permissions tothe data. For example, user interfaces 700-900 for a patient may havedifferent data and fields than user interfaces 700-900 for an expertproviding a second opinion. User interfaces 700-900 may also includetabs to enable access to different aspects of the patient's collectiverecords.

FIG. 7 depicts user interface 700 which may provide a variety ofinformation to the user. As depicted in FIG. 7, user interface 700 mayinclude a medical summary field 701 and an opinion field 702. Medicalsummary field 701 may include data fields, such as biographic data, aninitial diagnosis, a source of the initial diagnosis, a chief complaint,HPI, a proposed treatment, and a goal of consultation. Opinion field 702may receive input from the user to input prompts that would becommunicated to the patient. For example, opinion field 702 may includefields for summary to the patient, questions from the patient, andsummary of next steps.

FIG. 8 depicts user interface 800 which may provide a timeline 801 withextracted data, metadata, and tags. The timeline 801 may be filtered bythe event type, a condition, or a range of dates. Dates of timeline 801may also be arranged in a variety of different chronological orders.

FIG. 9 depicts user interface 900 which may provide images acquired inmethod 300. For example, the records may be linked from the timeline 801to provide an expert with additional information when desired.

FIGS. 10a-10c illustrate another example of user interfaces 1000 a-1000c consistent with embodiments of the present disclosure. In thisexample, a user interface is provided that allows a user to annotate amedical record for adding an event to the timeline. As depicted in FIG.10 a, when the user clicks on a spot in the medical record, system 100may be configured to output a user interface 1000 a including an optionmenu 1001 allowing the user to add a new annotation. Thereafter, theuser may select the option menu 1001 to add a new annotation. Asdepicted in FIG. 10 b, after receiving the user's selection of theoption menu 1001, system 100 may be configured to output a userinterface 1000 b including a text box 1002 allowing the user to enterthe annotation. The text box 1002 may further include an option for theuser to save the annotation. The user interface 1000 b may furtherinclude an option menu 1003 allowing the system 100 to build thetimeline based on the annotation. For example, the user may click on theoption menu 1003 after saving the newly entered annotation. As depictedin FIG. 10 c, after receiving the user's selection of the option menu1003, system 100 may be configured to output a user interface 1000 cincluding the user's annotation in the timeline preview section. Asdescribed above, the user interfaces 1000 a-1000 c allow a user to buildthe timeline while reviewing the medical records, thereby causingminimal disruption to the user's reviewing workflow.

In the foregoing specification, embodiments have been described withreference to numerous specific details that may vary from implementationto implementation. Certain adaptations and modifications of thedescribed embodiments may be made. Other embodiments may be apparent tothose skilled in the art from consideration of the specification andpractice of the invention disclosed herein. It is intended that thespecification and examples be considered as exemplary only. It is alsointended that the sequence of steps shown in figures are only forillustrative purposes and are not intended to be limited to anyparticular sequence of steps. As such, those skilled in the art mayappreciate that these steps may be performed in a different order whileimplementing the same method.

1. A computerized system for dynamic data processing and graphical userinterface generation, comprising: a network interface configured torequest and receive, via a computer network from one or more sources inremote locations, electronic record data associated with an individual;an input filter configured to identify structured and unstructuredinformation in the electronic record data; a data selector configured toanalyze the structured and unstructured information; a timelinegenerator configured to generate, based on the analysis, interfaceinformation for displaying an interactive graphical user interfaceconfigured to present an event timeline of events in the electronicrecord data, wherein the interactive graphical user interface includesone or more hyperlinks for accessing medical records associated with oneor more of the events; and a display configured to provide theinteractive graphical user interface based on the generated interfaceinformation.
 2. The system of claim 1, wherein the data selector isfurther configured to analyze received user input associated with theelectronic record data, and a database is configured to save thereceived user input.
 3. The system of claim 1, wherein the input filteris further configured to extract data from the analyzed structured andunstructured information, the extracted data including at least one ofinformation for the individual, a source of the electronic record data,a type of the electronic record data, a date stamp of the electronicrecord data, a permission level of the electronic record data, and testresults in the electronic record data.
 4. The system of claim 1, whereinthe received electronic record data includes multiple media types. 5.The system of claim 4, wherein the multiple media types include at leasttextual documents and images.
 6. The system of claim 1, furthercomprising a converter configured to convert a filetype of the medicalrecord data to a Portable Network Graphics file format.
 7. The system ofclaim 1, wherein the data selector is further configured to: determine apermission of a user operating the system; and determine a level ofdetail to include in the interactive graphical user interface based onthe determined permission.
 8. A computer-implemented method for dynamicdata processing and graphical user interface generation, comprising:requesting and receiving, via a computer network from one or moresources in remote locations, electronic record data associated with anindividual; identifying, by at least one processor of a computingsystem, structured and unstructured information in the electronic recorddata; analyzing, by the at least one processor, the structured andunstructured information; generating, based on the analysis, interfaceinformation for displaying an interactive graphical user interfaceconfigured to present an event timeline of events in the electronicrecord data, wherein the interactive graphical user interface includesone or more hyperlinks for accessing medical records associated with oneor more of the events; and providing for display the interactivegraphical user interface based on the generated interface information.9. The computer-implemented method of claim 8, wherein the analysisincludes received user input associated with the electronic record data,and the processor is further configured to save the user input in adatabase.
 10. The computer-implemented method of claim 8, furthercomprising extracting data from the analyzed structured and unstructuredinformation, the extracted data including at least one of informationfor the individual, a source of the electronic record data, a type ofthe electronic record data, a date stamp of the electronic record data,a permission level of the electronic record data, and test results inthe electronic record data.
 11. The computer-implemented method of claim8, wherein the received electronic record data includes multiple mediatypes.
 12. The computer-implemented method of claim 11, wherein themultiple media types include at least textual documents and images. 13.The computer-implemented method of claim 8, further comprisingconverting a filetype of the medical record data to a Portable NetworkGraphics file format.
 14. The computer-implemented method of claim 8,further comprising: determining a permission of a user operating thesystem; and determining a level of detail to include in the interactivegraphical user interface based on the determined permission.
 15. Anon-transitory computer readable medium storing a set of instructionsthat is executable by at least one processor of a computing system tocause the computing system to perform a method for dynamic dataprocessing and graphical user interface generation, the methodcomprising: requesting and receiving, via a computer network from one ormore sources in remote locations, electronic record data associated withan individual; identify structured and unstructured information in theelectronic record data; analyzing the structured and unstructuredinformation; generating, based on the analysis, interface informationfor displaying an interactive graphical user interface configured topresent an event timeline of events in the electronic record data,wherein the interactive graphical user interface includes one or morehyperlinks for accessing medical records associated with one or more ofthe events; and providing for display the interactive graphical userinterface based on the generated interface information.
 16. Thenon-transitory computer readable medium of claim 15, wherein theanalyzing step includes received user input associated with theelectronic record data, and the processor is further configured to savethe user input in a database.
 17. The non-transitory computer readablemedium of claim 15, wherein the set of instructions that is executableby the at least one processor of the computing system cause thecomputing system to further perform: extracting data from the analyzedstructured and unstructured information, the extracted data including atleast one of information for the individual, a source of the electronicrecord data, a type of the electronic record data, a date stamp of theelectronic record data, a permission level of the electronic recorddata, and test results in the electronic record data.
 18. Thenon-transitory computer readable medium of claim 15, wherein thereceived electronic record data includes textual documents and images.19. The non-transitory computer readable medium of claim 15, wherein theset of instructions that is executable by the at least one processor ofthe computing system cause the computing system to further perform:converting a filetype of the medical record data to a Portable NetworkGraphics file format.
 20. The non-transitory computer readable medium ofclaim 15, wherein the set of instructions that is executable by the atleast one processor of the computing system cause the computing systemto further perform: determining a permission of a user operating thesystem; and determining a level of detail to include in the interactivegraphical user interface based on the determined permission.